<?php
/*
Il s'agit ici de la Factory dedie au access a la base mysql si on souhaitait migrer notre base vers PosgreSQL par exemple il faudrait creer une autre factory concrete
Il s'agit ici de l'utilisation du pattern Abstract Factory qui permet de masquer le type concretement utilise. Cette classe derive d'ailleurs de la classe AbstractDAOFactory qui oblige la redefinition de methodes
Concretement l'interet c'est de na pas avoir a changer tout le code dans les toutes les classes d'action de l'application un seul changement suffit (cf dossier conception) 
*/
class DAOFactoryMysql extends AbstractDAOFactory{

	// l'ensemble des methodes de cette classe sont presente dans la classe abstraite qui joue finalement le role d'interface en specifiant 
	//les methodes a redefinir pour chaque factory 
	//on encapsule dans chaque appelle, le type de DAO concret qui sera retourne(ici mysql) 
	//les appels au sgbd (select, update etc) des DAO mysql utilsent l'api Mysqli sont donc tres lie a cette base
	
	
	public function getClientDAO(){
		 return new ClientDAOMysql();
	}
	public  function getUtilisateurDAO(){
		 return new UtilisateurDAOMysql();
	}
	
	public function getFilmDAO(){
		return new FilmDAOMysql();
	}
	
	public function getSeanceDAO(){
		return new SeanceDAOMysql();
	}
	
	
	public function getReservationDAO(){
		return new ReservationDAOMysql();
	}
	
	public function getLigneReservationDAO(){
		return new LigneReservationDAOMysql();
	}
	
	public function getSalleDAO(){
		return new SalleDAOMysql();
	}
}
?>